Ruby の set trace func について
Ruby の Kernel.#set_trace_func がよくわからん
Ruby インタプリタのイベントをトレースする Proc オブジェクトとして 指定された proc を登録します。
https://docs.ruby-lang.org/ja/latest/method/Kernel/m/set_trace_func.html
ふーん
一番シンプルな例
code:ruby
set_trace_func lambda { |*arg|
puts arg
}
puts 'Hello, Ruby'
*arg の中身は |event, file, line, id, binding, klass| 。↑のコードだと puts 'Hello, Ruby' が実行される時に lambda で定義した proc が実行される仕組み。だから set_trace_func 以下のコードが実行される度にトレースが出力されるようになってる。
puts arg は雑すぎるので、欲しい情報だけ取得できるようにいくつかスニペット用意しておくとよさそう。